public class Verpackungsmaschine extends Thread {
	// x2
	// Je zwei Staebchen werden anschliessend durch eine Verpackungsmaschine in
	// eine Packung verpackt.
	// Benoetigte Zeit fuer einen schritt//
	private int runtime = 0;

	private Fabrik f;

	private int processed; //speichert die Anzahl der Stuecke  die sich in der Maschine befinden
	/*
	 * Konstruktor mit benoetigter zeit in ms fuer arbeitsschritt
	 */
	public Verpackungsmaschine(int runtime, Fabrik f) {
		this.runtime = runtime;
		this.f = f;
		this.processed = 0;
	}

	public void run() {
		while (true) 
		{
			for (int i = 0; i < 2; i++) 
			{
				while (!f.getgeschliffen()) 
				{
					try 
					{
						sleep(f.s1.getRuntime()); //Arbeitszet simulieren mittels sleep
					} catch (InterruptedException e) 
					{
						return;
					}
				}
				this.processed++;
			}

			// Zeit die fuer arbeitsschritt benoetigt wird//
			try {
				sleep(this.runtime);
			} catch (InterruptedException e) {
				return;
			}
			f.addVerpacktStaebchen(); //Staebchen in den Container legen
			this.processed -= 2;
		}
	}

	//Getter fuer Runtime
	//IN: void
	//Out: int (Runtime)
	public int getRuntime() {
		return this.runtime;
	}
	
	//Getter fuer die Anzahl der Stuecke die sich gerade in der Maschine befindens
	//IN: void
	//Out: int (Processed)
	public int getprocessed()
	{
		return this.processed;
	}
}
